Clock signals are often distributed to portions of a microprocessor to provide synchronization between the various portions of the microprocessor. Microprocessor components such as flip-flops, state machines, and counters rely on such synchronization to step the components through various computations.
A clock signal typically originates at a source that is external to a microprocessor—e.g., at a quartz-crystal circuit on a computer motherboard. The clock signal is transmitted to the microprocessor at one or more points and travels via a clock network on the microprocessor to various clock sinks.
Generally, the clock network is configured to minimize any delay in propagation of the clock signal (clock skew) between various portions of the microprocessor. However, as microprocessors become increasingly integrated, it becomes increasingly more difficult to design the microprocessors with clock trees that minimize clock skew. Accordingly, improved methods and apparatus for reducing clock skew are desired.